eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
or(true, y) → true
or(false, y) → y
and(true, y) → y
and(false, y) → false
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
reachable(x, y, i) → reach(x, y, 0, i, i)
reach(x, y, c, i, j) → if1(eq(x, y), x, y, c, i, j)
if1(true, x, y, c, i, j) → true
if1(false, x, y, c, i, j) → if2(le(c, size(j)), x, y, c, i, j)
if2(false, x, y, c, i, j) → false
if2(true, x, y, c, empty, j) → false
if2(true, x, y, c, edge(u, v, i), j) → or(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
↳ QTRS
↳ Overlay + Local Confluence
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
or(true, y) → true
or(false, y) → y
and(true, y) → y
and(false, y) → false
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
reachable(x, y, i) → reach(x, y, 0, i, i)
reach(x, y, c, i, j) → if1(eq(x, y), x, y, c, i, j)
if1(true, x, y, c, i, j) → true
if1(false, x, y, c, i, j) → if2(le(c, size(j)), x, y, c, i, j)
if2(false, x, y, c, i, j) → false
if2(true, x, y, c, empty, j) → false
if2(true, x, y, c, edge(u, v, i), j) → or(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
or(true, y) → true
or(false, y) → y
and(true, y) → y
and(false, y) → false
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
reachable(x, y, i) → reach(x, y, 0, i, i)
reach(x, y, c, i, j) → if1(eq(x, y), x, y, c, i, j)
if1(true, x, y, c, i, j) → true
if1(false, x, y, c, i, j) → if2(le(c, size(j)), x, y, c, i, j)
if2(false, x, y, c, i, j) → false
if2(true, x, y, c, empty, j) → false
if2(true, x, y, c, edge(u, v, i), j) → or(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
IF1(false, x, y, c, i, j) → SIZE(j)
REACH(x, y, c, i, j) → EQ(x, y)
IF1(false, x, y, c, i, j) → LE(c, size(j))
LE(s(x), s(y)) → LE(x, y)
IF1(false, x, y, c, i, j) → IF2(le(c, size(j)), x, y, c, i, j)
EQ(s(x), s(y)) → EQ(x, y)
REACHABLE(x, y, i) → REACH(x, y, 0, i, i)
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → OR(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
IF2(true, x, y, c, edge(u, v, i), j) → AND(eq(x, u), reach(v, y, s(c), j, j))
IF2(true, x, y, c, edge(u, v, i), j) → EQ(x, u)
REACH(x, y, c, i, j) → IF1(eq(x, y), x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → REACH(v, y, s(c), j, j)
SIZE(edge(x, y, i)) → SIZE(i)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
or(true, y) → true
or(false, y) → y
and(true, y) → y
and(false, y) → false
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
reachable(x, y, i) → reach(x, y, 0, i, i)
reach(x, y, c, i, j) → if1(eq(x, y), x, y, c, i, j)
if1(true, x, y, c, i, j) → true
if1(false, x, y, c, i, j) → if2(le(c, size(j)), x, y, c, i, j)
if2(false, x, y, c, i, j) → false
if2(true, x, y, c, empty, j) → false
if2(true, x, y, c, edge(u, v, i), j) → or(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
IF1(false, x, y, c, i, j) → SIZE(j)
REACH(x, y, c, i, j) → EQ(x, y)
IF1(false, x, y, c, i, j) → LE(c, size(j))
LE(s(x), s(y)) → LE(x, y)
IF1(false, x, y, c, i, j) → IF2(le(c, size(j)), x, y, c, i, j)
EQ(s(x), s(y)) → EQ(x, y)
REACHABLE(x, y, i) → REACH(x, y, 0, i, i)
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → OR(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
IF2(true, x, y, c, edge(u, v, i), j) → AND(eq(x, u), reach(v, y, s(c), j, j))
IF2(true, x, y, c, edge(u, v, i), j) → EQ(x, u)
REACH(x, y, c, i, j) → IF1(eq(x, y), x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → REACH(v, y, s(c), j, j)
SIZE(edge(x, y, i)) → SIZE(i)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
or(true, y) → true
or(false, y) → y
and(true, y) → y
and(false, y) → false
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
reachable(x, y, i) → reach(x, y, 0, i, i)
reach(x, y, c, i, j) → if1(eq(x, y), x, y, c, i, j)
if1(true, x, y, c, i, j) → true
if1(false, x, y, c, i, j) → if2(le(c, size(j)), x, y, c, i, j)
if2(false, x, y, c, i, j) → false
if2(true, x, y, c, empty, j) → false
if2(true, x, y, c, edge(u, v, i), j) → or(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
↳ QDP
LE(s(x), s(y)) → LE(x, y)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
or(true, y) → true
or(false, y) → y
and(true, y) → y
and(false, y) → false
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
reachable(x, y, i) → reach(x, y, 0, i, i)
reach(x, y, c, i, j) → if1(eq(x, y), x, y, c, i, j)
if1(true, x, y, c, i, j) → true
if1(false, x, y, c, i, j) → if2(le(c, size(j)), x, y, c, i, j)
if2(false, x, y, c, i, j) → false
if2(true, x, y, c, empty, j) → false
if2(true, x, y, c, edge(u, v, i), j) → or(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
↳ QDP
LE(s(x), s(y)) → LE(x, y)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
↳ QDP
LE(s(x), s(y)) → LE(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QDP
SIZE(edge(x, y, i)) → SIZE(i)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
or(true, y) → true
or(false, y) → y
and(true, y) → y
and(false, y) → false
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
reachable(x, y, i) → reach(x, y, 0, i, i)
reach(x, y, c, i, j) → if1(eq(x, y), x, y, c, i, j)
if1(true, x, y, c, i, j) → true
if1(false, x, y, c, i, j) → if2(le(c, size(j)), x, y, c, i, j)
if2(false, x, y, c, i, j) → false
if2(true, x, y, c, empty, j) → false
if2(true, x, y, c, edge(u, v, i), j) → or(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDP
SIZE(edge(x, y, i)) → SIZE(i)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
↳ QDP
SIZE(edge(x, y, i)) → SIZE(i)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
EQ(s(x), s(y)) → EQ(x, y)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
or(true, y) → true
or(false, y) → y
and(true, y) → y
and(false, y) → false
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
reachable(x, y, i) → reach(x, y, 0, i, i)
reach(x, y, c, i, j) → if1(eq(x, y), x, y, c, i, j)
if1(true, x, y, c, i, j) → true
if1(false, x, y, c, i, j) → if2(le(c, size(j)), x, y, c, i, j)
if2(false, x, y, c, i, j) → false
if2(true, x, y, c, empty, j) → false
if2(true, x, y, c, edge(u, v, i), j) → or(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
EQ(s(x), s(y)) → EQ(x, y)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
EQ(s(x), s(y)) → EQ(x, y)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
IF1(false, x, y, c, i, j) → IF2(le(c, size(j)), x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
REACH(x, y, c, i, j) → IF1(eq(x, y), x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → REACH(v, y, s(c), j, j)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
or(true, y) → true
or(false, y) → y
and(true, y) → y
and(false, y) → false
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
reachable(x, y, i) → reach(x, y, 0, i, i)
reach(x, y, c, i, j) → if1(eq(x, y), x, y, c, i, j)
if1(true, x, y, c, i, j) → true
if1(false, x, y, c, i, j) → if2(le(c, size(j)), x, y, c, i, j)
if2(false, x, y, c, i, j) → false
if2(true, x, y, c, empty, j) → false
if2(true, x, y, c, edge(u, v, i), j) → or(if2(true, x, y, c, i, j), and(eq(x, u), reach(v, y, s(c), j, j)))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
IF1(false, x, y, c, i, j) → IF2(le(c, size(j)), x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
REACH(x, y, c, i, j) → IF1(eq(x, y), x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → REACH(v, y, s(c), j, j)
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
or(true, x0)
or(false, x0)
and(true, x0)
and(false, x0)
reachable(x0, x1, x2)
reach(x0, x1, x2, x3, x4)
if1(true, x0, x1, x2, x3, x4)
if1(false, x0, x1, x2, x3, x4)
if2(false, x0, x1, x2, x3, x4)
if2(true, x0, x1, x2, empty, x3)
if2(true, x0, x1, x2, edge(x3, x4, x5), x6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
IF1(false, x, y, c, i, j) → IF2(le(c, size(j)), x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
REACH(x, y, c, i, j) → IF1(eq(x, y), x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → REACH(v, y, s(c), j, j)
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
REACH(z4, z1, s(z2), z6, z6) → IF1(eq(z4, z1), z4, z1, s(z2), z6, z6)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
REACH(z4, z1, s(z2), z6, z6) → IF1(eq(z4, z1), z4, z1, s(z2), z6, z6)
IF1(false, x, y, c, i, j) → IF2(le(c, size(j)), x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → REACH(v, y, s(c), j, j)
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
IF1(false, z0, z1, s(z2), z3, z3) → IF2(le(s(z2), size(z3)), z0, z1, s(z2), z3, z3)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonInfProof
REACH(z4, z1, s(z2), z6, z6) → IF1(eq(z4, z1), z4, z1, s(z2), z6, z6)
IF1(false, z0, z1, s(z2), z3, z3) → IF2(le(s(z2), size(z3)), z0, z1, s(z2), z3, z3)
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → REACH(v, y, s(c), j, j)
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
(1) (IF2(true, x0, x1, x2, x5, x6)=IF2(true, x7, x8, x9, edge(x10, x11, x12), x13) ⇒ IF2(true, x0, x1, x2, edge(x3, x4, x5), x6)≥IF2(true, x0, x1, x2, x5, x6))
(2) (IF2(true, x0, x1, x2, edge(x3, x4, edge(x10, x11, x12)), x6)≥IF2(true, x0, x1, x2, edge(x10, x11, x12), x6))
(3) (IF2(true, x14, x15, x16, x19, x20)=IF2(true, x21, x22, x23, edge(x24, x25, x26), x27) ⇒ IF2(true, x14, x15, x16, edge(x17, x18, x19), x20)≥IF2(true, x14, x15, x16, x19, x20))
(4) (IF2(true, x14, x15, x16, edge(x17, x18, edge(x24, x25, x26)), x20)≥IF2(true, x14, x15, x16, edge(x24, x25, x26), x20))
(5) (REACH(x60, x57, s(x58), x62, x62)=REACH(x63, x64, s(x65), x66, x66) ⇒ IF2(true, x56, x57, x58, edge(x59, x60, x61), x62)≥REACH(x60, x57, s(x58), x62, x62))
(6) (IF2(true, x56, x57, x58, edge(x59, x60, x61), x62)≥REACH(x60, x57, s(x58), x62, x62))
(7) (IF1(eq(x86, x87), x86, x87, s(x88), x89, x89)=IF1(false, x90, x91, s(x92), x93, x93) ⇒ REACH(x86, x87, s(x88), x89, x89)≥IF1(eq(x86, x87), x86, x87, s(x88), x89, x89))
(8) (eq(x86, x87)=false ⇒ REACH(x86, x87, s(x88), x89, x89)≥IF1(eq(x86, x87), x86, x87, s(x88), x89, x89))
(9) (false=false ⇒ REACH(0, s(x124), s(x88), x89, x89)≥IF1(eq(0, s(x124)), 0, s(x124), s(x88), x89, x89))
(10) (false=false ⇒ REACH(s(x125), 0, s(x88), x89, x89)≥IF1(eq(s(x125), 0), s(x125), 0, s(x88), x89, x89))
(11) (eq(x126, x127)=false∧(∀x128,x129:eq(x126, x127)=false ⇒ REACH(x126, x127, s(x128), x129, x129)≥IF1(eq(x126, x127), x126, x127, s(x128), x129, x129)) ⇒ REACH(s(x126), s(x127), s(x88), x89, x89)≥IF1(eq(s(x126), s(x127)), s(x126), s(x127), s(x88), x89, x89))
(12) (REACH(0, s(x124), s(x88), x89, x89)≥IF1(eq(0, s(x124)), 0, s(x124), s(x88), x89, x89))
(13) (REACH(s(x125), 0, s(x88), x89, x89)≥IF1(eq(s(x125), 0), s(x125), 0, s(x88), x89, x89))
(14) (REACH(x126, x127, s(x88), x89, x89)≥IF1(eq(x126, x127), x126, x127, s(x88), x89, x89) ⇒ REACH(s(x126), s(x127), s(x88), x89, x89)≥IF1(eq(s(x126), s(x127)), s(x126), s(x127), s(x88), x89, x89))
(15) (IF2(le(s(x96), size(x97)), x94, x95, s(x96), x97, x97)=IF2(true, x98, x99, x100, edge(x101, x102, x103), x104) ⇒ IF1(false, x94, x95, s(x96), x97, x97)≥IF2(le(s(x96), size(x97)), x94, x95, s(x96), x97, x97))
(16) (s(x96)=x130∧size(x97)=x131∧le(x130, x131)=true∧x97=edge(x101, x102, x103) ⇒ IF1(false, x94, x95, s(x96), x97, x97)≥IF2(le(s(x96), size(x97)), x94, x95, s(x96), x97, x97))
(17) (true=true∧s(x96)=0∧size(x97)=x132∧x97=edge(x101, x102, x103) ⇒ IF1(false, x94, x95, s(x96), x97, x97)≥IF2(le(s(x96), size(x97)), x94, x95, s(x96), x97, x97))
(18) (le(x134, x135)=true∧s(x96)=s(x134)∧size(x97)=s(x135)∧x97=edge(x101, x102, x103)∧(∀x136,x137,x138,x139,x140,x141,x142:le(x134, x135)=true∧s(x136)=x134∧size(x137)=x135∧x137=edge(x138, x139, x140) ⇒ IF1(false, x141, x142, s(x136), x137, x137)≥IF2(le(s(x136), size(x137)), x141, x142, s(x136), x137, x137)) ⇒ IF1(false, x94, x95, s(x96), x97, x97)≥IF2(le(s(x96), size(x97)), x94, x95, s(x96), x97, x97))
(19) (le(x134, x135)=true∧size(x97)=s(x135)∧x97=edge(x101, x102, x103)∧(∀x136,x137,x138,x139,x140,x141,x142:le(x134, x135)=true∧s(x136)=x134∧size(x137)=x135∧x137=edge(x138, x139, x140) ⇒ IF1(false, x141, x142, s(x136), x137, x137)≥IF2(le(s(x136), size(x137)), x141, x142, s(x136), x137, x137)) ⇒ IF1(false, x94, x95, s(x134), x97, x97)≥IF2(le(s(x134), size(x97)), x94, x95, s(x134), x97, x97))
(20) (s(size(x145))=s(x135)∧le(x134, x135)=true∧edge(x143, x144, x145)=edge(x101, x102, x103)∧(∀x136,x137,x138,x139,x140,x141,x142:le(x134, x135)=true∧s(x136)=x134∧size(x137)=x135∧x137=edge(x138, x139, x140) ⇒ IF1(false, x141, x142, s(x136), x137, x137)≥IF2(le(s(x136), size(x137)), x141, x142, s(x136), x137, x137))∧(∀x146,x147,x148,x149,x150,x151,x152,x153,x154,x155,x156,x157,x158,x159:size(x145)=s(x146)∧le(x147, x146)=true∧x145=edge(x148, x149, x150)∧(∀x151,x152,x153,x154,x155,x156,x157:le(x147, x146)=true∧s(x151)=x147∧size(x152)=x146∧x152=edge(x153, x154, x155) ⇒ IF1(false, x156, x157, s(x151), x152, x152)≥IF2(le(s(x151), size(x152)), x156, x157, s(x151), x152, x152)) ⇒ IF1(false, x158, x159, s(x147), x145, x145)≥IF2(le(s(x147), size(x145)), x158, x159, s(x147), x145, x145)) ⇒ IF1(false, x94, x95, s(x134), edge(x143, x144, x145), edge(x143, x144, x145))≥IF2(le(s(x134), size(edge(x143, x144, x145))), x94, x95, s(x134), edge(x143, x144, x145), edge(x143, x144, x145)))
(21) (size(x145)=x135∧le(x134, x135)=true∧(∀x146,x147,x148,x149,x150,x158,x159:size(x145)=s(x146)∧le(x147, x146)=true∧x145=edge(x148, x149, x150) ⇒ IF1(false, x158, x159, s(x147), x145, x145)≥IF2(le(s(x147), size(x145)), x158, x159, s(x147), x145, x145)) ⇒ IF1(false, x94, x95, s(x134), edge(x143, x144, x145), edge(x143, x144, x145))≥IF2(le(s(x134), size(edge(x143, x144, x145))), x94, x95, s(x134), edge(x143, x144, x145), edge(x143, x144, x145)))
(22) (true=true∧size(x145)=x160∧(∀x146,x147,x148,x149,x150,x158,x159:size(x145)=s(x146)∧le(x147, x146)=true∧x145=edge(x148, x149, x150) ⇒ IF1(false, x158, x159, s(x147), x145, x145)≥IF2(le(s(x147), size(x145)), x158, x159, s(x147), x145, x145)) ⇒ IF1(false, x94, x95, s(0), edge(x143, x144, x145), edge(x143, x144, x145))≥IF2(le(s(0), size(edge(x143, x144, x145))), x94, x95, s(0), edge(x143, x144, x145), edge(x143, x144, x145)))
(23) (le(x162, x163)=true∧size(x145)=s(x163)∧(∀x146,x147,x148,x149,x150,x158,x159:size(x145)=s(x146)∧le(x147, x146)=true∧x145=edge(x148, x149, x150) ⇒ IF1(false, x158, x159, s(x147), x145, x145)≥IF2(le(s(x147), size(x145)), x158, x159, s(x147), x145, x145))∧(∀x164,x165,x166,x167,x168,x169,x170,x171,x172,x173,x174,x175:le(x162, x163)=true∧size(x164)=x163∧(∀x165,x166,x167,x168,x169,x170,x171:size(x164)=s(x165)∧le(x166, x165)=true∧x164=edge(x167, x168, x169) ⇒ IF1(false, x170, x171, s(x166), x164, x164)≥IF2(le(s(x166), size(x164)), x170, x171, s(x166), x164, x164)) ⇒ IF1(false, x172, x173, s(x162), edge(x174, x175, x164), edge(x174, x175, x164))≥IF2(le(s(x162), size(edge(x174, x175, x164))), x172, x173, s(x162), edge(x174, x175, x164), edge(x174, x175, x164))) ⇒ IF1(false, x94, x95, s(s(x162)), edge(x143, x144, x145), edge(x143, x144, x145))≥IF2(le(s(s(x162)), size(edge(x143, x144, x145))), x94, x95, s(s(x162)), edge(x143, x144, x145), edge(x143, x144, x145)))
(24) (IF1(false, x94, x95, s(0), edge(x143, x144, x145), edge(x143, x144, x145))≥IF2(le(s(0), size(edge(x143, x144, x145))), x94, x95, s(0), edge(x143, x144, x145), edge(x143, x144, x145)))
(25) (le(x162, x163)=true∧size(x145)=s(x163)∧(∀x164,x172,x173,x174,x175:le(x162, x163)=true∧size(x164)=x163 ⇒ IF1(false, x172, x173, s(x162), edge(x174, x175, x164), edge(x174, x175, x164))≥IF2(le(s(x162), size(edge(x174, x175, x164))), x172, x173, s(x162), edge(x174, x175, x164), edge(x174, x175, x164))) ⇒ IF1(false, x94, x95, s(s(x162)), edge(x143, x144, x145), edge(x143, x144, x145))≥IF2(le(s(s(x162)), size(edge(x143, x144, x145))), x94, x95, s(s(x162)), edge(x143, x144, x145), edge(x143, x144, x145)))
(26) (s(size(x178))=s(x163)∧le(x162, x163)=true∧(∀x164,x172,x173,x174,x175:le(x162, x163)=true∧size(x164)=x163 ⇒ IF1(false, x172, x173, s(x162), edge(x174, x175, x164), edge(x174, x175, x164))≥IF2(le(s(x162), size(edge(x174, x175, x164))), x172, x173, s(x162), edge(x174, x175, x164), edge(x174, x175, x164)))∧(∀x179,x180,x181,x182,x183,x184,x185,x186,x187,x188,x189:size(x178)=s(x179)∧le(x180, x179)=true∧(∀x181,x182,x183,x184,x185:le(x180, x179)=true∧size(x181)=x179 ⇒ IF1(false, x182, x183, s(x180), edge(x184, x185, x181), edge(x184, x185, x181))≥IF2(le(s(x180), size(edge(x184, x185, x181))), x182, x183, s(x180), edge(x184, x185, x181), edge(x184, x185, x181))) ⇒ IF1(false, x186, x187, s(s(x180)), edge(x188, x189, x178), edge(x188, x189, x178))≥IF2(le(s(s(x180)), size(edge(x188, x189, x178))), x186, x187, s(s(x180)), edge(x188, x189, x178), edge(x188, x189, x178))) ⇒ IF1(false, x94, x95, s(s(x162)), edge(x143, x144, edge(x176, x177, x178)), edge(x143, x144, edge(x176, x177, x178)))≥IF2(le(s(s(x162)), size(edge(x143, x144, edge(x176, x177, x178)))), x94, x95, s(s(x162)), edge(x143, x144, edge(x176, x177, x178)), edge(x143, x144, edge(x176, x177, x178))))
(27) (size(x178)=x163∧le(x162, x163)=true∧(∀x164,x172,x173,x174,x175:le(x162, x163)=true∧size(x164)=x163 ⇒ IF1(false, x172, x173, s(x162), edge(x174, x175, x164), edge(x174, x175, x164))≥IF2(le(s(x162), size(edge(x174, x175, x164))), x172, x173, s(x162), edge(x174, x175, x164), edge(x174, x175, x164)))∧(∀x179,x180,x181,x182,x183,x184,x185,x186,x187,x188,x189:size(x178)=s(x179)∧le(x180, x179)=true∧(∀x181,x182,x183,x184,x185:le(x180, x179)=true∧size(x181)=x179 ⇒ IF1(false, x182, x183, s(x180), edge(x184, x185, x181), edge(x184, x185, x181))≥IF2(le(s(x180), size(edge(x184, x185, x181))), x182, x183, s(x180), edge(x184, x185, x181), edge(x184, x185, x181))) ⇒ IF1(false, x186, x187, s(s(x180)), edge(x188, x189, x178), edge(x188, x189, x178))≥IF2(le(s(s(x180)), size(edge(x188, x189, x178))), x186, x187, s(s(x180)), edge(x188, x189, x178), edge(x188, x189, x178))) ⇒ IF1(false, x94, x95, s(s(x162)), edge(x143, x144, edge(x176, x177, x178)), edge(x143, x144, edge(x176, x177, x178)))≥IF2(le(s(s(x162)), size(edge(x143, x144, edge(x176, x177, x178)))), x94, x95, s(s(x162)), edge(x143, x144, edge(x176, x177, x178)), edge(x143, x144, edge(x176, x177, x178))))
(28) (IF1(false, x94, x95, s(x162), edge(x143, x144, x178), edge(x143, x144, x178))≥IF2(le(s(x162), size(edge(x143, x144, x178))), x94, x95, s(x162), edge(x143, x144, x178), edge(x143, x144, x178))∧(∀x179,x180,x181,x182,x183,x184,x185,x186,x187,x188,x189:size(x178)=s(x179)∧le(x180, x179)=true∧(∀x181,x182,x183,x184,x185:le(x180, x179)=true∧size(x181)=x179 ⇒ IF1(false, x182, x183, s(x180), edge(x184, x185, x181), edge(x184, x185, x181))≥IF2(le(s(x180), size(edge(x184, x185, x181))), x182, x183, s(x180), edge(x184, x185, x181), edge(x184, x185, x181))) ⇒ IF1(false, x186, x187, s(s(x180)), edge(x188, x189, x178), edge(x188, x189, x178))≥IF2(le(s(s(x180)), size(edge(x188, x189, x178))), x186, x187, s(s(x180)), edge(x188, x189, x178), edge(x188, x189, x178))) ⇒ IF1(false, x94, x95, s(s(x162)), edge(x143, x144, edge(x176, x177, x178)), edge(x143, x144, edge(x176, x177, x178)))≥IF2(le(s(s(x162)), size(edge(x143, x144, edge(x176, x177, x178)))), x94, x95, s(s(x162)), edge(x143, x144, edge(x176, x177, x178)), edge(x143, x144, edge(x176, x177, x178))))
(29) (IF1(false, x94, x95, s(x162), edge(x143, x144, x178), edge(x143, x144, x178))≥IF2(le(s(x162), size(edge(x143, x144, x178))), x94, x95, s(x162), edge(x143, x144, x178), edge(x143, x144, x178)) ⇒ IF1(false, x94, x95, s(s(x162)), edge(x143, x144, edge(x176, x177, x178)), edge(x143, x144, edge(x176, x177, x178)))≥IF2(le(s(s(x162)), size(edge(x143, x144, edge(x176, x177, x178)))), x94, x95, s(s(x162)), edge(x143, x144, edge(x176, x177, x178)), edge(x143, x144, edge(x176, x177, x178))))
(30) (IF2(le(s(x107), size(x108)), x105, x106, s(x107), x108, x108)=IF2(true, x109, x110, x111, edge(x112, x113, x114), x115) ⇒ IF1(false, x105, x106, s(x107), x108, x108)≥IF2(le(s(x107), size(x108)), x105, x106, s(x107), x108, x108))
(31) (s(x107)=x190∧size(x108)=x191∧le(x190, x191)=true∧x108=edge(x112, x113, x114) ⇒ IF1(false, x105, x106, s(x107), x108, x108)≥IF2(le(s(x107), size(x108)), x105, x106, s(x107), x108, x108))
(32) (true=true∧s(x107)=0∧size(x108)=x192∧x108=edge(x112, x113, x114) ⇒ IF1(false, x105, x106, s(x107), x108, x108)≥IF2(le(s(x107), size(x108)), x105, x106, s(x107), x108, x108))
(33) (le(x194, x195)=true∧s(x107)=s(x194)∧size(x108)=s(x195)∧x108=edge(x112, x113, x114)∧(∀x196,x197,x198,x199,x200,x201,x202:le(x194, x195)=true∧s(x196)=x194∧size(x197)=x195∧x197=edge(x198, x199, x200) ⇒ IF1(false, x201, x202, s(x196), x197, x197)≥IF2(le(s(x196), size(x197)), x201, x202, s(x196), x197, x197)) ⇒ IF1(false, x105, x106, s(x107), x108, x108)≥IF2(le(s(x107), size(x108)), x105, x106, s(x107), x108, x108))
(34) (le(x194, x195)=true∧size(x108)=s(x195)∧x108=edge(x112, x113, x114)∧(∀x196,x197,x198,x199,x200,x201,x202:le(x194, x195)=true∧s(x196)=x194∧size(x197)=x195∧x197=edge(x198, x199, x200) ⇒ IF1(false, x201, x202, s(x196), x197, x197)≥IF2(le(s(x196), size(x197)), x201, x202, s(x196), x197, x197)) ⇒ IF1(false, x105, x106, s(x194), x108, x108)≥IF2(le(s(x194), size(x108)), x105, x106, s(x194), x108, x108))
(35) (s(size(x205))=s(x195)∧le(x194, x195)=true∧edge(x203, x204, x205)=edge(x112, x113, x114)∧(∀x196,x197,x198,x199,x200,x201,x202:le(x194, x195)=true∧s(x196)=x194∧size(x197)=x195∧x197=edge(x198, x199, x200) ⇒ IF1(false, x201, x202, s(x196), x197, x197)≥IF2(le(s(x196), size(x197)), x201, x202, s(x196), x197, x197))∧(∀x206,x207,x208,x209,x210,x211,x212,x213,x214,x215,x216,x217,x218,x219:size(x205)=s(x206)∧le(x207, x206)=true∧x205=edge(x208, x209, x210)∧(∀x211,x212,x213,x214,x215,x216,x217:le(x207, x206)=true∧s(x211)=x207∧size(x212)=x206∧x212=edge(x213, x214, x215) ⇒ IF1(false, x216, x217, s(x211), x212, x212)≥IF2(le(s(x211), size(x212)), x216, x217, s(x211), x212, x212)) ⇒ IF1(false, x218, x219, s(x207), x205, x205)≥IF2(le(s(x207), size(x205)), x218, x219, s(x207), x205, x205)) ⇒ IF1(false, x105, x106, s(x194), edge(x203, x204, x205), edge(x203, x204, x205))≥IF2(le(s(x194), size(edge(x203, x204, x205))), x105, x106, s(x194), edge(x203, x204, x205), edge(x203, x204, x205)))
(36) (size(x205)=x195∧le(x194, x195)=true∧(∀x206,x207,x208,x209,x210,x218,x219:size(x205)=s(x206)∧le(x207, x206)=true∧x205=edge(x208, x209, x210) ⇒ IF1(false, x218, x219, s(x207), x205, x205)≥IF2(le(s(x207), size(x205)), x218, x219, s(x207), x205, x205)) ⇒ IF1(false, x105, x106, s(x194), edge(x203, x204, x205), edge(x203, x204, x205))≥IF2(le(s(x194), size(edge(x203, x204, x205))), x105, x106, s(x194), edge(x203, x204, x205), edge(x203, x204, x205)))
(37) (true=true∧size(x205)=x220∧(∀x206,x207,x208,x209,x210,x218,x219:size(x205)=s(x206)∧le(x207, x206)=true∧x205=edge(x208, x209, x210) ⇒ IF1(false, x218, x219, s(x207), x205, x205)≥IF2(le(s(x207), size(x205)), x218, x219, s(x207), x205, x205)) ⇒ IF1(false, x105, x106, s(0), edge(x203, x204, x205), edge(x203, x204, x205))≥IF2(le(s(0), size(edge(x203, x204, x205))), x105, x106, s(0), edge(x203, x204, x205), edge(x203, x204, x205)))
(38) (le(x222, x223)=true∧size(x205)=s(x223)∧(∀x206,x207,x208,x209,x210,x218,x219:size(x205)=s(x206)∧le(x207, x206)=true∧x205=edge(x208, x209, x210) ⇒ IF1(false, x218, x219, s(x207), x205, x205)≥IF2(le(s(x207), size(x205)), x218, x219, s(x207), x205, x205))∧(∀x224,x225,x226,x227,x228,x229,x230,x231,x232,x233,x234,x235:le(x222, x223)=true∧size(x224)=x223∧(∀x225,x226,x227,x228,x229,x230,x231:size(x224)=s(x225)∧le(x226, x225)=true∧x224=edge(x227, x228, x229) ⇒ IF1(false, x230, x231, s(x226), x224, x224)≥IF2(le(s(x226), size(x224)), x230, x231, s(x226), x224, x224)) ⇒ IF1(false, x232, x233, s(x222), edge(x234, x235, x224), edge(x234, x235, x224))≥IF2(le(s(x222), size(edge(x234, x235, x224))), x232, x233, s(x222), edge(x234, x235, x224), edge(x234, x235, x224))) ⇒ IF1(false, x105, x106, s(s(x222)), edge(x203, x204, x205), edge(x203, x204, x205))≥IF2(le(s(s(x222)), size(edge(x203, x204, x205))), x105, x106, s(s(x222)), edge(x203, x204, x205), edge(x203, x204, x205)))
(39) (IF1(false, x105, x106, s(0), edge(x203, x204, x205), edge(x203, x204, x205))≥IF2(le(s(0), size(edge(x203, x204, x205))), x105, x106, s(0), edge(x203, x204, x205), edge(x203, x204, x205)))
(40) (le(x222, x223)=true∧size(x205)=s(x223)∧(∀x224,x232,x233,x234,x235:le(x222, x223)=true∧size(x224)=x223 ⇒ IF1(false, x232, x233, s(x222), edge(x234, x235, x224), edge(x234, x235, x224))≥IF2(le(s(x222), size(edge(x234, x235, x224))), x232, x233, s(x222), edge(x234, x235, x224), edge(x234, x235, x224))) ⇒ IF1(false, x105, x106, s(s(x222)), edge(x203, x204, x205), edge(x203, x204, x205))≥IF2(le(s(s(x222)), size(edge(x203, x204, x205))), x105, x106, s(s(x222)), edge(x203, x204, x205), edge(x203, x204, x205)))
(41) (s(size(x238))=s(x223)∧le(x222, x223)=true∧(∀x224,x232,x233,x234,x235:le(x222, x223)=true∧size(x224)=x223 ⇒ IF1(false, x232, x233, s(x222), edge(x234, x235, x224), edge(x234, x235, x224))≥IF2(le(s(x222), size(edge(x234, x235, x224))), x232, x233, s(x222), edge(x234, x235, x224), edge(x234, x235, x224)))∧(∀x239,x240,x241,x242,x243,x244,x245,x246,x247,x248,x249:size(x238)=s(x239)∧le(x240, x239)=true∧(∀x241,x242,x243,x244,x245:le(x240, x239)=true∧size(x241)=x239 ⇒ IF1(false, x242, x243, s(x240), edge(x244, x245, x241), edge(x244, x245, x241))≥IF2(le(s(x240), size(edge(x244, x245, x241))), x242, x243, s(x240), edge(x244, x245, x241), edge(x244, x245, x241))) ⇒ IF1(false, x246, x247, s(s(x240)), edge(x248, x249, x238), edge(x248, x249, x238))≥IF2(le(s(s(x240)), size(edge(x248, x249, x238))), x246, x247, s(s(x240)), edge(x248, x249, x238), edge(x248, x249, x238))) ⇒ IF1(false, x105, x106, s(s(x222)), edge(x203, x204, edge(x236, x237, x238)), edge(x203, x204, edge(x236, x237, x238)))≥IF2(le(s(s(x222)), size(edge(x203, x204, edge(x236, x237, x238)))), x105, x106, s(s(x222)), edge(x203, x204, edge(x236, x237, x238)), edge(x203, x204, edge(x236, x237, x238))))
(42) (size(x238)=x223∧le(x222, x223)=true∧(∀x224,x232,x233,x234,x235:le(x222, x223)=true∧size(x224)=x223 ⇒ IF1(false, x232, x233, s(x222), edge(x234, x235, x224), edge(x234, x235, x224))≥IF2(le(s(x222), size(edge(x234, x235, x224))), x232, x233, s(x222), edge(x234, x235, x224), edge(x234, x235, x224)))∧(∀x239,x240,x241,x242,x243,x244,x245,x246,x247,x248,x249:size(x238)=s(x239)∧le(x240, x239)=true∧(∀x241,x242,x243,x244,x245:le(x240, x239)=true∧size(x241)=x239 ⇒ IF1(false, x242, x243, s(x240), edge(x244, x245, x241), edge(x244, x245, x241))≥IF2(le(s(x240), size(edge(x244, x245, x241))), x242, x243, s(x240), edge(x244, x245, x241), edge(x244, x245, x241))) ⇒ IF1(false, x246, x247, s(s(x240)), edge(x248, x249, x238), edge(x248, x249, x238))≥IF2(le(s(s(x240)), size(edge(x248, x249, x238))), x246, x247, s(s(x240)), edge(x248, x249, x238), edge(x248, x249, x238))) ⇒ IF1(false, x105, x106, s(s(x222)), edge(x203, x204, edge(x236, x237, x238)), edge(x203, x204, edge(x236, x237, x238)))≥IF2(le(s(s(x222)), size(edge(x203, x204, edge(x236, x237, x238)))), x105, x106, s(s(x222)), edge(x203, x204, edge(x236, x237, x238)), edge(x203, x204, edge(x236, x237, x238))))
(43) (IF1(false, x105, x106, s(x222), edge(x203, x204, x238), edge(x203, x204, x238))≥IF2(le(s(x222), size(edge(x203, x204, x238))), x105, x106, s(x222), edge(x203, x204, x238), edge(x203, x204, x238))∧(∀x239,x240,x241,x242,x243,x244,x245,x246,x247,x248,x249:size(x238)=s(x239)∧le(x240, x239)=true∧(∀x241,x242,x243,x244,x245:le(x240, x239)=true∧size(x241)=x239 ⇒ IF1(false, x242, x243, s(x240), edge(x244, x245, x241), edge(x244, x245, x241))≥IF2(le(s(x240), size(edge(x244, x245, x241))), x242, x243, s(x240), edge(x244, x245, x241), edge(x244, x245, x241))) ⇒ IF1(false, x246, x247, s(s(x240)), edge(x248, x249, x238), edge(x248, x249, x238))≥IF2(le(s(s(x240)), size(edge(x248, x249, x238))), x246, x247, s(s(x240)), edge(x248, x249, x238), edge(x248, x249, x238))) ⇒ IF1(false, x105, x106, s(s(x222)), edge(x203, x204, edge(x236, x237, x238)), edge(x203, x204, edge(x236, x237, x238)))≥IF2(le(s(s(x222)), size(edge(x203, x204, edge(x236, x237, x238)))), x105, x106, s(s(x222)), edge(x203, x204, edge(x236, x237, x238)), edge(x203, x204, edge(x236, x237, x238))))
(44) (IF1(false, x105, x106, s(x222), edge(x203, x204, x238), edge(x203, x204, x238))≥IF2(le(s(x222), size(edge(x203, x204, x238))), x105, x106, s(x222), edge(x203, x204, x238), edge(x203, x204, x238)) ⇒ IF1(false, x105, x106, s(s(x222)), edge(x203, x204, edge(x236, x237, x238)), edge(x203, x204, edge(x236, x237, x238)))≥IF2(le(s(s(x222)), size(edge(x203, x204, edge(x236, x237, x238)))), x105, x106, s(s(x222)), edge(x203, x204, edge(x236, x237, x238)), edge(x203, x204, edge(x236, x237, x238))))
POL(0) = 0
POL(IF1(x1, x2, x3, x4, x5, x6)) = -1 - x1 - x4 + x5
POL(IF2(x1, x2, x3, x4, x5, x6)) = -1 - x4 + x6
POL(REACH(x1, x2, x3, x4, x5)) = -x3 + x4
POL(c) = -1
POL(edge(x1, x2, x3)) = 1 + x3
POL(empty) = 0
POL(eq(x1, x2)) = 0
POL(false) = 0
POL(le(x1, x2)) = x2
POL(s(x1)) = 1 + x1
POL(size(x1)) = x1
POL(true) = 1
The following pairs are in Pbound:
REACH(z4, z1, s(z2), z6, z6) → IF1(eq(z4, z1), z4, z1, s(z2), z6, z6)
The following rules are usable:
IF1(false, z0, z1, s(z2), z3, z3) → IF2(le(s(z2), size(z3)), z0, z1, s(z2), z3, z3)
false → eq(0, s(x))
true → eq(0, 0)
eq(x, y) → eq(s(x), s(y))
false → eq(s(x), 0)
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ DependencyGraphProof
↳ QDP
IF1(false, z0, z1, s(z2), z3, z3) → IF2(le(s(z2), size(z3)), z0, z1, s(z2), z3, z3)
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → REACH(v, y, s(c), j, j)
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
↳ QDP
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
From the DPs we obtained the following set of size-change graphs:
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ QDP
↳ DependencyGraphProof
REACH(z4, z1, s(z2), z6, z6) → IF1(eq(z4, z1), z4, z1, s(z2), z6, z6)
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
IF2(true, x, y, c, edge(u, v, i), j) → REACH(v, y, s(c), j, j)
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
size(empty) → 0
size(edge(x, y, i)) → s(size(i))
le(0, y) → true
le(s(x), 0) → false
le(s(x), s(y)) → le(x, y)
eq(0, 0) → true
eq(0, s(x)) → false
eq(s(x), 0) → false
eq(s(x), s(y)) → eq(x, y)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
eq(0, 0)
eq(0, s(x0))
eq(s(x0), 0)
eq(s(x0), s(x1))
size(empty)
size(edge(x0, x1, x2))
le(0, x0)
le(s(x0), 0)
le(s(x0), s(x1))
↳ QTRS
↳ Overlay + Local Confluence
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ Instantiation
↳ QDP
↳ Instantiation
↳ QDP
↳ NonInfProof
↳ AND
↳ QDP
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ QDPSizeChangeProof
IF2(true, x, y, c, edge(u, v, i), j) → IF2(true, x, y, c, i, j)
From the DPs we obtained the following set of size-change graphs: